1. Field of Art
The disclosure generally relates to video compression, and more particularly, to implementing a context-adaptive binary arithmetic coding (CABAC) compression scheme with a dual-pipeline architecture in a video processing system.
2. Description of the Related Art
The H.264 video coding standard includes several algorithmic improvements upon previous block-oriented motion-compensation-based video codecs. One such improvement is the availability of multiple advanced entropy coding methods. Many forms of entropy encoding, a lossless compression technique, assign codes to data symbols in such a way that the most frequently occurring symbols are represented by the shortest codes, allowing the encoder to make use of the natural redundancy of video signals. One such method is context-adaptive variable length coding (CAVLC), which is employed in the H.264 video coding standard, and is applied after video data has been transformed and quantized. In this scheme, VLC tables for various syntax elements are switched depending on already transmitted syntax elements. Since the VLC tables are designed to match the corresponding conditional statistics, the entropy coding performance is improved in comparison to schemes using a single fixed VLC table.
A higher-density implementation of entropy encoding in H.264 is context-adaptive binary arithmetic coding (CABAC). The CABAC design is based on the key elements of binarization, context modeling and binary arithmetic coding. The usage of arithmetic coding and adaptive codes permits CABAC adaptation to non-stationary symbol statistics. The context modeling is applied to a binary sequence of the syntactical elements of the video data, such as block types, motion vectors, and quantized coefficients. The context modeling of CABAC allows previously coded syntax elements to be used in estimating conditional probabilities, which in turn may be used in switching between estimated probability models to improve entropy coding efficiency.
CABAC offers higher compression efficiency than CAVLC at the expense of much higher computational resource and time requirements. For some H.264 applications, the computational time requirements of CABAC may be too costly to use CABAC encoding. In other applications, the smaller compressed video file size offered by CABAC is required, and prevents the use of CAVLC encoding. Therefore, there is a need for an implementation of an H.264 architecture which offers the high level of data compression of CABAC while simultaneously requiring less time to execute.
The figures depict an embodiment for purposes of illustration only. One skilled in the art will readily recognize from the following description that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles described herein.